//package theList;
//
///**
// * @auther wangchenghao
// * @date 2021/6/20
// *
// * 链表反转：非遍历发
// *
// * 首先想到的就是调整链表指针的指向，为了避免链表断开，需要提前把next节点保存下载。然后再通过调整链表指向，实现链表反转。
// *
// * 例如，有i,m,n三个相邻的结点
// * 当遍历到结点吗，我们需要做的是使m指向i,但是不能直接指。一旦指向i,就没有指针能指向n了，即链表断开。
// * 为了避免链表断开，需要在调整m的next之间把n保存下来。
// **/
//public class test1 {
//    public static Node reverseList(Node head) {
//        Node pReversedHead=null;
//        Node pNode=head;
//        Node pPrev=null;
//        while(pNode!=null){
//            //重新指向链表前，需要先保存下一个结点
//            Node pNext=pNode.next;
//            if (pNext==null){
//                pReversedHead=pNode;
//            }
//            pNode.next=pPrev;
//            pPrev=pNode;
//            pNode=pNext;
//        }
//        head=pReversedHead;
//        return head;
//    }
//
//
//     //Definition for singly-linked list.
//     static public class ListNode {
//        int val;
//         ListNode next;
//         ListNode() {}
//         ListNode(int val) { this.val = val; }
//         ListNode(int val, ListNode next) { this.val = val; this.next = next; }
//    }
//
//    public static void main(String[] args) {
//       MyLinkedList myLinkedList=new MyLinkedList();
//       myLinkedList.addNode(1);
//       myLinkedList.addNode(4);
//       myLinkedList.addNode(5);
//        myLinkedList.head=reverseList(myLinkedList.head);
//       myLinkedList.printList();
//    }
//
//}
